<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var p1 = new Object(); //通过Object直接创建对象
    //为p1对象动态添加属性
    p1.Age=20;
    p1.Name="孤傲苍狼";
    //扩展Object类，为Object类添加一个Show方法
    Object.prototype.Show=function(){
        alert(this.Age+"\t"+this.Name);
    }
    alert(p1.Age);
    p1.Show();
    document.write("<pre>");
    document.writeln("p1.constructor："+p1.constructor);//得到对象的构造函数
    document.writeln("Object.prototype："+Object.prototype);//得到prototype对象，prototype是静态属性，只能通过"类名.prototype"去访问
    document.writeln("p1.isPrototypeOf(p1)："+p1.isPrototypeOf(p1));//判断该对象是否为另一个对象的原型。
    document.writeln("p1.hasOwnProperty(\"Age\")："+p1.hasOwnProperty("Age"));//判断对象是否有某个特定的属性。必须用字符串指定该属性
    document.writeln("p1.propertyIsEnumerable(\"Age\")："+p1.propertyIsEnumerable("Age"));//检测出这个对象成员是否是可遍历的
    document.writeln("p1.toString()："+p1.toString());
    document.writeln("p1.valueOf()："+p1.valueOf());
    document.write("</pre>");

    /**
     * p1.constructor：function Object() { [native code] }
     Object.prototype：[object Object]
     p1.isPrototypeOf(p1)：false
     p1.hasOwnProperty("Age")：true
     p1.propertyIsEnumerable("Age")：true
     p1.toString()：[object Object]
     p1.valueOf()：[object Object]
     * */
</script>
</body>
</html>